package org.example.handle;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.example.domin.School;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @Aspect 表示这是一个切面类
 */
@Aspect
public class MyAspect {
    /**
     * 切面的前置通知
     */
    //@Before(value = "execution(* org.example.service.*.*(..))")
    @Before(value = "execution(* org.example.service.*.add(..))")
    public void myBefore(JoinPoint joinPoint){
        System.out.println("\r\n前置通知：切面的功能，在目标方法之前执行："+new Date());
        System.out.println("前置检测中获取方法的名称："+joinPoint.getSignature().getName());
        System.out.println("前置检测中获取方法的定义："+joinPoint.getSignature());
        System.out.println("前置通知中获取方法的参数：");
        Object args[]= joinPoint.getArgs();
        for (Object arg : args) {
            System.out.println("参数："+arg);
        }
    }
}
